package ch.ebnoether.controller;

import java.awt.Color;
import java.awt.event.MouseEvent;
import java.awt.event.MouseListener;

import javax.swing.JTextField;

import ch.ebnoether.gui.YatzyGUI;
import ch.ebnoether.wuerfel.Dice;

public abstract class MasterController implements MouseListener {
  private boolean gesetzt;
  private YatzyGUI yatzi;
  private Dice[] dice;

  public static boolean setzbar;

  public MasterController(Dice[] dice, YatzyGUI yatzi) {
    this.yatzi = yatzi;
    setzbar = true;
    this.dice = dice;
  }

  @Override
  public void mouseClicked(MouseEvent e) {
    Object o = e.getSource();
    JTextField t = (JTextField) o;

    t.setBackground(Color.LIGHT_GRAY);
    t.setForeground(Color.WHITE);
    this.gesetzt = true;
    YatzyGUI.felderBelegt++;
    this.yatzi.diceButtonOff();
    this.yatzi.checkFinish();
    YatzyGUI.anzahlWuerfe = 0;
    for (int i = 0; i < 5; i++) {
      this.dice[i].zuruecksetzen();
    }
    setzbar = false;
    this.yatzi.diceButtonOn();
    this.yatzi.repaint();
  }

  @Override
  public void mouseEntered(MouseEvent e) {
  }

  @Override
  public void mouseExited(MouseEvent e) {
    Object o = e.getSource();
    JTextField t = (JTextField) o;

    if (!gesetzt) {
      t.setText("");
    }
  }

  @Override
  public void mousePressed(MouseEvent e) {
  }

  @Override
  public void mouseReleased(MouseEvent e) {
  }

  public boolean isGesetzt() {
    return gesetzt;
  }

  public void setGesetzt(boolean gesetzt) {
    this.gesetzt = gesetzt;
  }
}
